﻿using System;
using Sinacor.Infra.Common;
using System.Collections.Generic;
using Sinacor.Servico.Bovespa.Cliente.BusinessEntity;
using Sinacor.Servico.Bovespa.Cliente.Service.DataContract.Request;

namespace Sinacor.Servico.Bovespa.Cliente.Service.ServiceImplementation.Translator.DataContractToBusinessEntity
{
    //Task : 5617
    //Data : 10/03/2009
    //Autor: APsilva
    /// <summary>
    /// Translator de Cliente 
    /// </summary>
    public class Cliente
    {
        #region Métodos
        /// <summary>
        /// Translator de Filtro de Cliente Request para Bussiness Entity Parameter
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public BusinessEntity.Parameter.FiltroClientePorApelido ToFiltroClientePorApelido(DataContract.Request.FiltroClientePorApelidoRequest request)
        {
            BusinessEntity.Parameter.FiltroClientePorApelido to = new Sinacor.Servico.Bovespa.Cliente.BusinessEntity.Parameter.FiltroClientePorApelido();
            to.ApelidoCliente = request.ApelidoCliente;
            to.IsListaAssessores = request.IsListaAssessores;
            return to;
        }

        public BusinessEntity.Parameter.FiltroCliente ToFiltroCliente(DataContract.Request.FiltroClienteRequest toFiltroCliente)
        {
            BusinessEntity.Parameter.FiltroCliente to = null;

            if (toFiltroCliente != null)
            {
                to = new Sinacor.Servico.Bovespa.Cliente.BusinessEntity.Parameter.FiltroCliente();
                to.Apelido = toFiltroCliente.Apelido;
                to.Codigo = toFiltroCliente.Codigo;
            }
            return to;
        }
        public BusinessEntity.Parameter.FiltroClienteChave ToFiltroClienteChave(DataContract.Request.FiltroClienteChaveRequest filtroCliente)
        {
            BusinessEntity.Parameter.FiltroClienteChave to = null;

            if (filtroCliente != null)
            {
                to.Codigo = filtroCliente.Codigo;
            }
            return to;
        }

        /// <summary>
        /// Traduz de DataContract.Request.FiltroCodigoClienteRequest para BusinessEntity.Parameter.FiltroCodigoCliente
        /// </summary>
        /// <param name="from">DataContract.Request.FiltroCodigoClienteRequest</param>
        /// <returns>BusinessEntity.Parameter.FiltroCodigoCliente</returns>
        public BusinessEntity.Parameter.FiltroCodigoCliente ToFiltroCodigoCliente(DataContract.Request.FiltroCodigoClienteRequest from) 
        {
            BusinessEntity.Parameter.FiltroCodigoCliente to = new BusinessEntity.Parameter.FiltroCodigoCliente();
            to.Codigo = from.Codigo;
            return to;
        }


        #endregion
    }
}
